#ifndef __MATHTOOLS_VEC4F_H_INCLUDE__
#define __MATHTOOLS_VEC4F_H_INCLUDE__
#include "mathToolsConfig.h"

namespace mt
{
	class vec4f
	{
	public:
		vec4f()
			:Data() {}

		vec4f(float n)
			:Data(n,n,n,n) {}

		vec4f(float x, float y, float z, float w)
			:X(x), Y(y), Z(z), W(w) {}

		void store(DirectX::XMVECTOR& v)
		{
			DirectX::XMStoreFloat4(&Data, v);
		}

		DirectX::XMVECTOR getXMVector()const
		{
			return DirectX::XMLoadFloat4(&Data);
		}

		union
		{
			float M[4];
			struct
			{
				float X, Y, Z, W;
			};
			DirectX::XMFLOAT4 Data;
		};
	};
}
#endif//! __MATHTOOLS_VEC4F_H_INCLUDE__